Windows Embedded Compact(即 Windows CE)是微软公司嵌入式、移动计算平台的基础,它是一个开放的、可升级的32位
嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统。(在2008年4月15日举行的嵌入式系统大会上,微软宣布将Windows CE更名为Windows Embedded Compact,与Windows Embedded Enterprise、Windows Embedded Standard和Windows Embedded POSReady组成Windows Embedded系列产品。)
定义
Windows CE
操作系统是Windows家族中的成员,为专门设计给
掌上电脑(HPCs)以及
嵌入式设备所使用的系统环境。这样的
操作系统可使完整的可移动技术与现有的Windows
桌面技术整合工作。Windows CE被设计成针对小型设备(它是典型的拥有有限内存的无磁盘系统)的通用
操作系统,Windows CE可以通过设计一层位于
内核和
硬件之间代码用来设定硬件平台,这即是众所周知的硬件抽象层(HAL)(在以前解释时,这被称为OEMC(原始设备制造)适应层,即OAL;内核压缩层,即KAL。以免与微软的Windows NT
操作系统的HAL混淆)。
与其它的
微软Windows
操作系统不同,Windows CE并不是代表一个采用相同标准的对所有平台都适用的
软件。为了足够灵活以达到适应广泛产品需求,Windows CE可采用不同的标准模式,这就意味着,它能够从一系列
软件模式中做出选择,从而使产品得到定制。另外,一些可利用模式也可作为其组成部分,这意味着这些模式能够通过从一套可利用的组份做出选择,从而成为标准模式。通过选择,Windows CE能够达到系统要求的最小模式, 从而减少存储脚本和
操作系统的运行。
Windows CE中的C代表袖珍(Compact)、消费(Consumer)、通信能力(Connectivity)和伴侣(Companion);E代表电子产品(Electronics)。与Windows 95/98、Windows NT不同的是,Windows CE是所有源代码全部由
微软自行开发的嵌入式新型
操作系统,其操作界面虽来源于Windows 95/98,但Windows CE是基于WIN32 API重新开发、新型的信息设备的平台。Windows CE具有模块化、结构化和基于Win32
应用程序接口和与处理器无关等特点。Windows CE不仅继承了传统的Windows图形界面,并且在Windows CE平台上可以使用Windows 95/98上的编程工具(如Visual Basic、Visual C++等)、使用同样的函数、使用同样的界面风格,使绝大多数的
应用软件只需简单的修改和移植就可以在Windows CE平台上继续使用。Windows CE并非是专为单一装置设计的,所以
微软为旗下采用Windows CE作业系统的产品大致分为三条产品线,
Pocket PC(掌上电脑)、Handheld PC(手持设备)及Auto PC。
数据采集
对于大部分制造业企业,测量仪器的自动数据采集一直是个令人烦恼的事情,即使仪器已经具有RS232/485等接口,但仍然在使用一边测量,一边手工记录到纸张,最后再输入到PC中处理的方式,不但工作繁重,同时也无法保证数据的准确性,常常管理人员得到的数据已经是滞后了一两天的数据;而对于现场的不良产品信息及相关的产量数据,如何实现高效率、简洁、实时的数据采集更是一大难题。
简介
WinCE, 它是将条码扫描装置与数据终端一体化,带有电池可离线操作的终端电脑设备。具备实时采集、自动存储、即时显示、即时反馈、自动处理、自动传输等功能。为现场数据的真实性、有效性、实时性、可用性提供了保证。其具有一体性、机动性、体积小、重量轻、高性能,并适于手持等特点。它主要应用于工业数据采集中。
组成
Windows CE主要由两大部分组成,一是Windows CE硬件设备,另一个是Windows CE中运行的采集端软件。
·硬件部分
在生产现场,由于空间的限制,一般情况下不方便放置常规的工控主机,同时也基于成本的考虑,所以采用工业级的嵌入式主机是一个比较好的解决方案,如广州太友科技的数据采集仪,此数据采集仪上配备有两个串口,仪器或设备可直接通过串口线与之相连,同时用户可在数据采集仪中设置产品相关的信息。
·软件部分
采集软件安装在数据采集仪中,用户通过采集软件进行数据的自动采集,并进行相关的处理, 对于生产线的实时数据,由于一般只是输出数据,没有输出相应的参数值,规格值等,所以此时可在软件中设置相应的产品信息参数,然后由用户选择相应的产品信息,班次信息,批次信息等.
版本历程
自1996年微软推出Windows CE 1.0,Windows CE一共经历了7个不同的版本。
1.0
Windows CE1.0是一种基于Windows 95的
操作系统,其实就是单纯的Windows95简化版本。90年代中期卡西欧推出第一款采用Windows CE 1.0
操作系统的蛤壳式PDA,算是第一家推出真正称得上手掌尺寸的掌上电脑厂商。作为第一代的Windows CE 1.0于1996年问世,不过它最初的发展并不顺利。当时
Palm操作系统在PDA市场上非常成功,几乎成为了整个PDA产品的代名词,在这种情况下,微软公司被迫为最初Windows CE的不断改进的同时,微软公司也通过游说、技术支持、直接资助等手段聚集了大量合作厂商,使Windows CE类的PDA阵容越来越强大。
2.0
随着Windows 95的出现和Windows 98的成功,另外一个巨人-
微软站起来了,并迅速地在PC
操作系统业界建立了微软帝国。PDA市场的发展潜力被众多分析家看好,嗅觉异常灵敏的
微软自然不会放过这样一个巨大的市场,在其
操作系统帝国已经非常稳定的前提下,又开始了在PDA市场上的全力冲刺,用Windows CE 2.0操作系统来打造与Palm非常类似的掌上产品。
WinCE2.0不仅比CE1.0快的多,而且是彩色显示,有众多新型PDA采用了新的WinCE 2.0系统,大有取代Pilot的趋势,成为PDA
操作系统新的标准。尽管CE2.0仍然要比Pilot的
操作系统需要的空间要大的多,但它具有Windows的界面,会用PC的人小编估计没有多少人不会使用
微软的操作系统。如果你熟悉Windows95,在使用WindowsCE的时候就熟门熟路了,就不需要重新学习。而且,两者技术上的相似性,第三方Windows应用软件开发商们,就可以很容易地把自己的应用软件转换成可供CE运行的版本,因此,WindowsCE的可使用软件的种类将会越来越多的。
3.0
WinCE3.0是
微软的Windows Compact Edition,是一个通用版本,并不针对掌上产品,标准PC、家电和工控设备上也可以安装运行,但要做许多客户化工作,当然也可以做掌上电脑。微软鼓励大家在任何硬件平台(WinCE3.0支持5系列CPU: x86,PowerPC,ARM,MIPS,SH3/4) 上使用(为了和VxWorks,Linux等竞争),所以早期的WINCE运行在不同的硬件平台上,而且可以更换显示方向,以便为不同的平台服务。WinCE3.0属于付费
软件,安装许可(Licence)费用为$20,10份起,批量时大致能降到$15/一份。
2000年微软公司将WinCE3.0正式改名为Windows for Pocket PC,简称Pocket PC。就是把Pocket Word和Pocket Excel等一些日常所需的办公
软件的袖珍版装了进去Pocket PC,同时在娱乐方面的性能做很大的加强。当然对于
微软的所有举动,捧场的厂商自然也不会少,加入Pocket PC 阵营的有HP、Compaq、Casio等一些著名厂商。当Compaq的iPAQ 3630的诞生和在市场的热销,支持和加入Pocket PC阵营的厂商就越来越多。2002年智能手机商机再现,不少PPC厂商希望推出整合手机功能的PPC,于是在2002年8月,专门为手机优化过的
微软Pocket PC 2002 Phone Edition
操作系统匆匆问世,2002年10月,国内第一款PPC手机--多普达686上市了,随后熊猫推出了CH860、联想推出ET180,越来越多的
pocket pc产品出现了。
4.0-4.2
Windows CE. NET(即Windows CE 4.0)是
微软于2002年1月份推出的首个以.NET为名的
操作系统,从名字上我们就可以知道它是微软的.NET的一部分。WinCE. NET是WinCE3.0的升级,同时还加入.NET Framework精简版,支持蓝牙和.NET
应用程序开发。
WindowsCE. NET 4.2是Windows CE. NET 4.0/4.1的升级版,对Windows CE先前版本的强大功能进行了进一步的扩充和丰富,基于其开发的设备将从这些微小但重要的变化中获得更好的性能和更强的Windows集成功能。微软在WinCE4.2版时曾提供开放源代码,不过只针对研究单位,而程序代码较少,为200万行。
5.0
WinCE5.0在2004年5月份推出,
微软宣布Windows CE5.0扩大开放程序源代码。在这个
开放源代码计划授权下,微软开放250万行源代码程序作为评估套件(evaluationkit)。凡是个人、厂商都可以下载这些源代码加以修改使用,未来厂商OEM时,则再依执行时期(Run-time)授权,支付Win CE5.0核心每台机器3美元的授权费用,这也是微软第一个提供商业用途衍生授权的
操作系统。
6.0
2006年11月,微软公司其最新的嵌入式平台Windows Embedded CE 6.0正式上市。作为业内领先的
软件工具,Windows Embedded CE 6.0将为多种设备构建实时
操作系统,例如:
互联网协议(IP)机顶盒、全球定位系统(GPS)、无线投影仪,以及各种工业自动化、消费电子以及医疗设备等。
在Windows Embedded诞生十周年之际,
微软将首次在“共享源计划(Microsoft Shared Source programme)”中100%毫无保留地开放Windows Embedded CE 6.0
内核,(GUI
图形用户界面不开放)比Windows Embedded CE的先前版本的开放比例整体高出56%。“共享源计划”为设备制造商提供了全面的
源代码访问,以进行修改和重新发布(根据许可协议条款),而且不需要与微软或其他方共享他们最终的设计成果。尽管Windows操作系统是一个通用型
计算机平台,为实现统一的体验而设计,设备制造商可以使用Windows Embedded CE 6.0这个工具包为不同的非
桌面设备构建定制化的操作系统映像。通过获得Windows Embedded CE
源代码的某些部分,比如:文件系统、设备
驱动程序和其他核心组件,
嵌入式开发者可以选择他们所需的源代码,然后编译并构建自己的代码和独特的操作系统,迅速将他们的设备推向市场。
微软还将Visual Studio 2005专业版作为Windows Embedded CE 6.0的一部分一并推出。这对
微软来说又是一次史无前例的突破。Visual Studio 2005专业版将包括一个被称为Platform Builder的功能强大的插件,它是一个专门为
嵌入式平台提供的“
集成开发环境”。这个
集成开发环境使得整个开发链融为一体,并提供了一个从设备到应用都易于使用的工具,极大地加速了设备开发的上市。
Windows Embedded CE 6.0重新设计的
内核具有32,000个处理器的并发处理能力,每个处理有2GB
虚拟内存寻址空间,同时还能保持系统的实时响应。这使得开发人员可以将大量强大的
应用程序融入到更智能化、更复杂的设备中。无论在路上、在工作还是在家里,都可以使用这种设备。
在路上:Windows Embedded CE 6.0加入了新的单元核心数据和语音组件,这使得设备能够通过蜂窝通讯网络建立数据连接和语音通话,从而实现机器对机器的通讯应用场景,并构建相应的设备,如停车表、自动售货机和GPS设备等。
在工作上:Windows Embedded CE 6.0包含的组件更便于开发者创建通过Windows Vista内置功能无线连接到远程桌面共享体验的投影仪。
在家中:Windows Embedded CE 6.0充分利用了多媒体技术,以开发网络媒体设备、数字视频录像机和IP机顶盒等。
7.0
在2010年6月1日-5日的台北COMPUTEX展会上,微软正式公布了其嵌入式产品线最新的一员Windows Embedded Compact 7。Windows Embedded Compact 7的前身便是大家所熟知的Windows Embedded CE(简称WinCE)系统,随着版本号的升级,其正式改名为Windows Embedded Compact 7。微软即将推出的Windows Phone 7所采用的
内核正是使用了类似的WinCE 7内核。不仅如此,Windows Phone平台也是基于WinCE平台而定制出来的产品。
此次发布的Windows Embedded Compact 7的改进如下:
1、对无缝连接技术的改进:Windows Embedded Compact 7提供的各项技术可以支持与富媒体、在线服务、Windows PC、智能手机和其他手持设备的无缝连接;
2、改进连接和使用富媒体服务:Windows Embedded Compact 7使用了新的媒体库来简化多媒体功能管理,并对
MPEG-4和HD高清进行了支持,灵活的插件架构技术支持第三方内容扩展;
3、实现了和 Windows 7的无缝对接:利用Windows Device Stage简化了多媒体的管理,可以很轻松地在两者间同步数据和媒体文件;
4、完善
Office和个人信息服务:可支持Office Viewers AirSync和Microsoft Exchange;
5、丰富用户体验:可以利用Windows Embedded Compact 7提供的创新解决方案,为用户提供非同凡响的设备交互能力;
6、灵活的UI框架扩展:Windows Embedded为设备提供了一个更加丰富和直观的用户界面框架——Silverlight,设计师可以利用Microsoft Expression Blend构建出只限于想象力的界面效果;
7、丰富在线冲浪体验:Windows Embedded Compact 7更新的IE
浏览器引擎支持Tab标签页、Zooming缩放等功能,支持
AdobeFlash10.1组件;
8、改进操控输入更具人性化:内置了强大的触控交互方式,允许用户自定义手势,并为移动设备原生提供了多点操控支持。
windows embedded compact 2013
Windows Embedded Compact 2013 是一套简化的组件化设备操作系统,现经过更新可同时支持Visual Studio 2013和Visual Studio 2012,该操作系统为开发人员提供了创建下一代智能系统解决方案所需的所有工具。 通过对 x86 和 ARM 架构进行支持,Windows Embedded Compact 2013 提供了灵活性和实时支持,可帮助设备制造商缩短产品的上市时间,同时创建易于使用、多点触控的智能系统,以让企业能够提高员工的生产效率。
Visual Studio2012 和 2013 以及Expression Blend等常见的工具使您可以创建极具吸引力而又直观的用户界面,并可以更快地将差异化的设备投入市场。
实时操作系统支持各种硬件要求和主要处理器架构(包括 x86 和 ARM),以满足不同需求(从微控制到全自动化工厂)。
改进的文件系统性能确保公司的设备始终可用;单层安全功能兼容 SDL,并具有可靠的无线连接和联网能力。
最新功能
目前最新的Windows CE为 Windows Embedded Compact 7,这个版本在
内核部分有很大的进步: 所有系统元件都由EXE改为DLL,并移到 kernel space.
全新设计的
虚拟内存架构、全新的设备驱动程序架构,同时支持 User Mode 与 Kernel Mode 两种驱动程序。突破只能运行 32 个工作元(process)的限制,可以运行 32768 个工作元。每一工作元的的
虚拟内存限制由32 M 增加到全系统总虚拟内存。Platform Builder IDE 集成到 Microsoft Visual Studio 2005。新的安全架构,确保只有被信任的
软件可以在系统中运行。UDF 2.5 文件系统。支持 802.11i (WPA2)及 802.11e (QoS) 等无线规格,及多重 radio support.
支持 x86,ARM,SH4,MIPS 等各种处理器。提供新的 Cellcore components 使系统在移动电话网络中更容易创建数据链接及激活通话。在
开发环境上,
微软也提供兼容于.NET Framework的开发元件:.NET Compact Framework,让正在学习.NET或已拥有.NET程序开发技术的开发人员能迅速而顺利的在搭载Windows CE .NET系统的设备上开发
应用程序。
用于掌上电脑
Pocket PC以及智能手机
Smart Phone上的Windows CE系统称为
Windows Mobile,目前成熟的最新版本为Windows Phone 8.1。
体系结构
基于Windows CE构建的
嵌入式系统大致可以分为4个层次,从底层向上依次是:硬件层、OEM层、
操作系统层和应用层。不同层次是由不同厂商提供的,一般来说,硬件层和OEM层由硬件OEM厂商提供;
操作系统层由微软公司提供;应用层由独立软件开发商提供。
每一层分别由不同的模块组成,每个模块又由不同的组件构成。这种层次性的结构试图将硬件和
软件、
操作系统和
应用程序隔开,以便于实现系统的移植,便于进行硬件、软件、操作系统、应用程序等开发的人员分工合作、并行开发。
硬件层
硬件层是指由CPU、
存储器、I/O端口、扩展
板卡等组成的嵌入式
硬件系统,是Windows CE
操作系统必不可少的载体。一方面,
操作系统为嵌入式应用提供一个运行平台;另一方面,操作系统要运行在硬件之上,直接与硬件打交道并管理硬件。值得注意的是,由于
嵌入式系统是以应用为核心的,嵌入式系统中的硬件通常是根据应用需要定制的,因此,各种硬件
体系结构之间的差异非常大。“更小、更快、更省钱”几乎是所有
嵌入式系统硬件的设计目标。
OEM层
OEM层是逻辑上位于硬件和Windows CE
操作系统之间的一层硬件相关代码。它的主要作用是对硬件进行抽象,抽象出统一的接口,然后Windows CE
内核就可以用这些接口与硬件进行通信。
开发技术
针对不同的系统,WindowsCE使用了不同的开发技术:Windows CE 使用的 VC++ 5.0 开发系统嵌入式工具包,提供系统库、工具、文本和样本代码,从而使 OEMs 能够对特定的硬件平台使 Windows CE 标准定制。嵌入式工具包也包括
设备驱动包(DDK)和软件开发包(SDK) ,DDK 提供了关于写驱动器的附加文本,SDK 提供库、头文件、样本代码、文本以允许,开发者对基于 Windows CE 的平台进行写操作。Windows CE 提供了相同的程序界面,以用来为其它的视窗
操作系统开发功能,例如,Windows CE 版本 1.01支持大约1000个
微软的Win 32 API 函数的其中500个。这就意味着大量不同类的工具,第三方书籍,关于 Win 32 开发者训练教程,可以替代或为 Windows CE 系统的开发者所用。而
实时系统的开发者能够使用 VDFF 5.0 的嵌入式工具包,以把
操作系统转移到特定的平台,并为这个平台开发附加
设备驱动器和实时功能。
系统详细介绍
线程优先权级
Windows CE 是有优先级的
多任务操作系统,它允许多重功能、进程,在相同
时间系统中运行 Windows CE 支持最大的 32 位同步进程。一个进程包括一个或多个线程,每个线程代表进程的一个独立部分,一个线程被指定为进程的基本线程,进程也能创造一个未定数目的额外线程,额外线程实际数目,仅由可利用的
系统资源限定。
Windows CE 利用基于优先级的时间片演算法以安排线程的执行,Windows CE 支持八个不同的优先级,由0到7,0代表最高级,它在头文件windows.h中定义。
级别0和1通常做为实时过程和
设备驱动器,级别2-4做为线程和通常功能,级别5-7做为是低于其它功能级别,注意级别6是目前状态并有稳定联接。
类似于Windows,拥有高级优先权的线程安排优先运行,而同一优先级的线程会以循环优先先级方式运行,即每个线程接受定制的时间或时间片,定量时间默认值为25毫秒 (Windows CE 2.0 支持在 MIPS 平台更改定量时间)。较低优先权的线程,要直到较高级线程完成之后再运行,也即直到他们或者放弃或停止。一个重要的例外是最高优先级的线程(级别0,关键时间优先级)不与其它的线程共享时间片,这些线程连续执行直到他们完成。不象其它的Windows操作系统,Windows CE 是固定的,不能改变。它不匹配这基于引进优先级的中断,他们能够暂时改动,但仅能通过 Windows CE
内核以避免所谓的的“优先权倒置”。
优先权倒置指的是当它们同时竞争同一资源时,低优先级的线程,阻碍了高优先权线程对资源的利用。为了改正这种局面并解放较高优先权的线程,Windows CE 允许低级优先权继承,严格的线程优先权,并且运行较高优先级直到它释放所用资源。
例如,如果一个线程在最高优先权运行试图莸取由低级优先权占有的
互斥体,低级优先权的线程变成高级优先权,并且运行直到它释放互斥体。优先权倒置适用于系统的所有线程。例如,甚至在优先级别1运行的
内核线程能转成级别0,如果优先级0线程
运行内存分页代码,将引起块失误。
基于优先级的多任务设计,保证运行在最低级的线程在一个预所知时间段执行。本论文在后面讨论设定响应,对于指定的平台和公式,并由其它的平台获取数字。在 DAK 和 SDK 的工具,显示了线程状态和优先级别,并描绘指定
实时系统操作轮廓。
线程同步
实时系统必须保证进程和线程同步,例如,如果实时应用的一部分在另一部分获得最多当前数据前即完成,此应用的管理进程可能不稳定,同步将确保在应用线程间交换正确。
如同其它的 Windows
操作系统一样,Windows CE 为
线程同步提供了一个丰富的“等待对象”,这包括关键部门、事件、
互斥体,些等待对象,允许一个线程减缓它的运行并且等待直到指定事件发生。
Windows CE 将
互斥体、关键部分、事件请求按“先入先出,优先级(FIFO)”顺序排列:不同的先入先出顺序序列定义成八个不同的优先级,在给定的优称级的线程请求,将被放在优先级列表末尾,当优先级倒置出现时,调度程序调整这些序列。
除了等待对象,Windows CE 支持标准的 Win 32 时间 API 函数,这些来自
内核的应用,
软件中断将获得时间间隔,它被用来管理实时应用。通过调用 GetTickCont 函数,它能够返回几毫秒,线程能够使用系统间隔时间。关于更详细的分时信息,Windows CE
内核也支持Win 32 API 函数QueryPerformanreCounter 和 QueryPerFormanteFrequency。OEM 必须为这些调用提供硬件和
软件支持,它提供一个较高的时间分辨力和 OAL 界面其它方面。
其它方面考虑
Windows CE 提供了一个重要的
存储系统,例如,当某些运行Windows CE的平台提供4MB的物理内存时,Windows CE 支持一个重要的 2GB 的地址空间,每个进程联接在它自己的32MB 物理空间上,当它需要产生内存
分页中断(这可能影响线程执行时间),物理内存进行线程代码或数据内存分页。
内存
分页输入输出,将比实时
进程优先级低。在实时进程中内存
分页仍可自由出现,但这要确保
后台的实际
内存管理赢得
实时系统优先权。实时线程应该锁存在内存中,以防止这些无关紧要的内存
分页阻碍其运行,它们可能会占用实际
内存管理系统。
Windows CE 允许映射,这将阻止多个进程共享同一
物理内存,结果将会导致协同进程间或驱动器与映射快速的
数据传送,内存映射能够戏剧性的增强实时操作。
中断处理
WinCE的中断处理机制基于IRQS ISRS 和 ISTS
实时应用被设立在指定的时间间隔内,对外部事件做出反应,实时应用使用中断做为一种确保外部事件由
操作系统获知的方式。在 Windows 中,
内核和 OEM 适应层 (OAL)被设定成使系统其它部分的中断和调度最优化。Windows CE 平衡操作,并通过把中断过程分成两部分而使执行更加容易:它分为
中断服务程序(ISR)和中断服务线程(IST)两部分。
每条硬件中断申请线(IRQ),与一个ISR相连。当中断成立和中断出现时,
内核为此调用寄存的 ISR, ISR 为
中断处理的内核模式部分尽可能短的保存。它首先将
内核放在适合的 IST 上。
ISR 执行它的最小处理并返回一个 ID 号到
内核,内核检查返回的中断 ID 号,并设置相关事件,中断服务线程等待事件。当
内核设置事件时,IST 停止等待并开始执行,附加的中断进程,中断处理大部分实际上出现在 IST 中,两个最高的线程优先权 (级别0和1),通常指定为 ISTS,保证这些线程运行得足够快。
正如前面所说,处在最高级的 ISTS 不能被其它的线程占用,这些线程持续执行直到它们截止或放弃。
Windows CE 不能支持群体中断,这就意味着当以前一个
中断处理中,另一个不同接受服务,也就是当
内核位于 ISR 时如果中断出现,在为新的 IRQ 开始 ISR 前它将一直执行直到ISR 结束,这将引起
硬件中断和 ISR 开始之间的延迟,拖延和响应时间
中断响应。
中断响应
下文中,Interrupt Latency 词组主要指的是较件中断处理响应,也即是从处部中断到达处理器到中断开始处理间的时间。
Windows CE的
中断响应时间是针对锁存在内存上的线程 (当内存响应不存在时)。这使得计算最差事件响应成为可能——
中断服务程序(ISR) 开始和中断服务线程(IST)开始D的总时间,直到中断处理的总时间能够通ISR 和 IST 中所需时间计算决定。
ISR 响应通用公式定义如下:
ISR开始时间 = value1 + dISR_Current + sum(dISR_Higher)
dISR_Current=中断到达时程序中 ISR 持续时间。这个值范围由0到系统中最长的 ISR 持续时间
sum(dISR_Higher)=所有在 ISR 开始前的较高级ISRS 持续时间总和,即在时间 vahe1+dISR-cumeneu间到达的中断
例如,考虑一个拥有关键优先权 ISR 的
嵌入式系统,因为 ISR 被设成最高级,这有样 ISRS dISR-Higher 值为0。当没有其它 ISRS 最低响应,在程序中,即为value1 最低响应即为value1加系统中最长 ISR 周期,当中断到达时,正是系统中最长的 ISR 开始执行。
IST 响应周期定义如下:
IST开始时间 = value2 + sum(dIST) + sum(dISR)
sum(dIST)=所有的出现在 ISR 和 IST ,开始的优先级 ISTS 和线程上下文转换时间总和。
sum(dISR)=在中断(?) ISR 和它的 IST 之间运行的其它 ISRS 持续时间总和。
最简单的例子——具有一个关键级 ISR 和一个关键级线程(无其它0优先级的线程)的嵌入式系统——没有其它的 ISTS 能够在ISR 和 IST 之间中断,然而在关键级的 ISR 和它相关的 IST 开始间其它的 ISRS 能被处理。
因为 ISRS 一旦能够获得,即可被处理,很容易想象成病态情况,涉及产生一个持续的 ISRS 流,从而产生不确定的推迟。IST 的开始不可能出现,因为 OEM对系统中的中断完成控制。因为 OEM (
原始设备制造商)为特定
操作系统设计传统 Windows CE 版本。OCM 利用目标操作环境限制使系统设计最佳化。
为减少响应时间,OEM 控制 ISR 和IST 处理时间
中断优先级线程优先级。公式中的value1和walue2代表,Windows CE
内核中的处理时间,这使得OEM能按照目的来控制分时,研究工作涉及这些确认值。
确保实时操作
两种不同途径被用来确保Windows CE操作:
* 由Windows CE开发组进行内部的检查或分析
内核代码,
* OEM和ISV(独立
软件销售商)利用一些将在未来的Windows CE版本嵌入式工具包(for VCFT)提供工具来确保特定配置。
Windows CE关于VC++的嵌入工具包包括以下工具:
* (一个对于分时研究的
内核的工具版本和Intrtinrt.ext
应用软件来观察,中断过程的最大、最小、平均时间。
Windows CE开发组,已经检查了
内核代码以证实它能由最差的情况时间表征,它是独立于系统对象数目的。
为了利用这个检查,
内核被表征成一套KCALLS或系统调用,在内核关闭优先权是它们是内核程序,并且不允许其它的线程运行,最差事件时间,此时,实时进程、标止运行,它能在内核中表征成最差事件KCALL时间(注意:这些时间不影响ISRS,只影响线程,例如ISTS)。
开发组通过检查发现在KCALLS没有非持久的循环,这使所有的KCALLS能够表示成单向分支,代码路径,并确保通过KCALL并独立于输入参数发现最差事件时间成为可能。
查找实际的最差事件时间包括使用In strum ented kemal,这仅是一个
内核版本,它在设定应用环境后编辑使用,KCALL_PROFICE=1,以保证额外的分时功能,这个instrumented kemel 与debug kemel不同,Instrument ted是为一个零售的内核使用,它用来获得分时值,这常对于装运产品常常讳之莫深,在retail kernal和instrumented kernel唯一区别是它的装备。
Instrumentted kernel记录所有的KCALL时间,这些值,包括最小、最大和平均时间,并能够通过调用专用的API函数Dum Pk call profile打印到调试接口,Instrumented kernel通常运行在强状态下,然后调用Dumpkcall prefile来获得时间。
中断测试
应用软件Intrtime.exe,在Windows CE标准版本收集中断分时延迟信息,应用软件在测试中控制系统时间。因此,当系统需要时间控制器时,是不合适使用的。例如,此
应用程序不能与
内核instrumented版本一起使用,因为它也需要时间控制。
创建快捷方式
你没看错,Windows CE也可以使用快捷方式。
快捷方式是可以提供到其他文件链接的很小的文件,你可以使用.lnk文件指向位于Windows文件夹中的文件。如果你不使用.lnk文件,你只能通过文件
系统文件(.dat)在ROM之外制作Windows文件夹下的文件的完全副本。
以下步骤列出了如何创建一个
桌面快捷方式。当你创建了这个文件以后,你需要把它加入到运行时的image里,在大多数情况下,你需要把这个文件复制到Windows系统以外的地方。
1、从Platform Builder中的File菜单选择New Project or File
2、在New Project or File对话框中选择Files标签
3、选择Text File类型
4、在File name文本框中,输入.lnk,其中;可根据需要输入,下同。这样,一个新文件就被创建并打开了
5、在.lnk中,输入链接命令
.lnk文件是一个包含了命令行和被链接目标的文本文件,它有一个命令行长度部分和一个命令行。你也可以通过
参数传递给被链接的目标,这是可选的。然而,如果
快捷方式模块在Coredll中被替换了,那么这个行为也可能会被改变。
作为默认的,一个.lnk文件使用如下的格式。
[后面命令行和参数的ASCⅡ字符串的长度]#[命令行[参数]]
举个例子,要能过两个参数运行你的MyApp.exe程序,一个MyApp.lnk文件内可包含这个语句:
6、从File菜单中选择Save As
7、把这个文件保存在BSP的OAK部分以便于编译进
操作系统你已经创建了
快捷方式文件,你现在可以通过编辑Project.bib把它加入到OS中,或者添加到你的平台组件树中。如果是前者,只需打开Project.bib文件并且在FILES段中加入如下一行代码:
在这个例子中,MyApp.LNK被放入NK的内存块中,可选的参数S把它定义成
系统文件属性。
与Linux的区别
本段将会从商业模式,学习和开发难度,对硬件的支持,稳定性,对工程师未来发展的帮助,对研发中心未来发展的帮助来探讨。
嵌入式Linux OS与Windows CE相比的优点
第一:Linux是开放源代码,遍布全球的众多Linux爱好者都是Linux开发者的强大技术支持者;Windows CE 6.0
内核全部开放,GUI不开放。第二:Linux的
内核小、效率高;Windows CE与之相比,占用过多的RAM。第三Linux是
开放源代码的OS,在价格上极具竞争力,适合中国国情。Windows CE需要版权费用。第四Linux不仅支持x86芯片,还是一个跨平台的系统。更换CPU时就不会遇到更换平台的困扰。第五,Linux
内核的结构在网络方面是非常完整的,它提供了对包括十兆位、百兆位及千兆位的以太网络,还有无线网络、Token ring(
令牌环)和光纤甚至卫星的支持,Windows CE的网络功能也比较强大。
嵌入式Linux OS与Windows CE相比的弱点
第一:LINUX开发难度较高,需要很高的技术实力,WINCE开发相对较容易,开发周期短,
内核完善,主要是应用层开发。第二:LINUX核心调试工具不全,调试不太方便,尚没有很好的用户图形界面,WINCE的GUI丰富,开发工具强大;第三,LINUX
系统维护难度大。Linux在使用较完整的GUI时一般会占用较大的内存,可以去掉部分无用的功能来减小使用的内存,但是如果不仔细,将引起新的问题。